With the growth of the Internet, the increased use of computers and the exchange of information between individual users poses a threat to the security of computers. Among the various security threats that present increasingly difficult challenges to the secure operation of computer systems are malicious attacks, such as computer viruses, worms, Trojan horses, etc. To protect themselves from malicious attacks, computer systems may utilize anti-virus programs. One approach involves using anti-virus programs, such as virus scanning programs, to protect against the spread of viruses. Virus scanning programs may detect the virus and then isolate and remove the viral code. For example, the virus scanning program may contain a list of previously defined virus signatures, containing the binary patterns of a virus, each associated with a virus and scan the various files of a system looking for a match to a particular virus signature. If a virus is detected, the user may be notified and further steps may be taken to rid the system of the malicious code.
However, the virus scanning software must be continuously updated in order to be effective in detecting new and modified malicious attacks. Many security software providers offer services that update virus signatures daily, for example, in order to adequately respond to new virus threats. Such updates, even where including minimal changes to the virus signatures, may require a great deal of bandwidth due to complex representational differences between the old and new signature files.